home *** CD-ROM | disk | FTP | other *** search
/ Mac-Source 1994 July / Mac-Source_July_1994.iso / C and C++ / Commun⁄Network / MailCheck 0.9x ƒ / test src / mmc_test.c < prev   
C/C++ Source or Header  |  1990-08-09  |  3KB  |  175 lines

  1. /*
  2.  * main program to test gms server
  3.  * by Aaron Wohl (aw0g+@andrew.cmu.edu) jul 1990
  4.  * Carnegie-Mellon University
  5.  * Special Projects
  6.  * Pittsburgh, PA 15213-3890
  7.  * (412)-268-5032
  8.  */
  9.  
  10. #include <stdio.h>
  11. #include <string.h>
  12.  
  13. #define NIL 0L
  14.  
  15. #include "mmc_core.h"
  16. #include "mmc_core_private.h"
  17. #include "mmc_prep.h"
  18. #include "mmc_print_state.h"
  19. #include "mmc_macmail.h"
  20.  
  21. #define fatal_error(xx_arg) {printf xx_arg;fflush(stdout);exit(0);}
  22. extern void exit(int);
  23.  
  24. char get_cmd(void);
  25. char get_cmd()
  26. {
  27.     char buf[100];
  28.     printf("mmc> ");
  29.     if(gets(buf)==NIL)
  30.         return 0;
  31.     return buf[0];
  32. }
  33.  
  34. void get_state(void);
  35. void get_state()
  36. {
  37.   mmc_state s;
  38.   s.mmc_st_maj_ver=MMC_ST_maj_ver;
  39.   s.mmc_st_min_ver=MMC_ST_min_ver;
  40.   mmc_get_state(&s,NIL);
  41.   mmc_print_state(&s);
  42. }
  43.  
  44.  
  45. LDEF(void set_state(mmc_state_pt s))
  46. {
  47.   sound_res_state cur_res;
  48. #ifdef RUBBISH
  49.   TURN_ON_FLAGS(*s,MCS_debug);
  50. #endif
  51.   TURN_ON_FLAGS(*s,MCS_nhow|MCS_hearmm);
  52.   cur_res=mmc_use_sound_res();
  53.   mmc_set_state(s);
  54.   mmc_close_sound_res(cur_res);
  55.   get_state();
  56. }
  57.  
  58. void read_it(void);
  59. void read_it()
  60. {
  61.   mmc_state s;
  62.   int err;
  63.   err=mmc_read_prep(&s);
  64.   if(err!=0)
  65.       printf("readit failed %d\n",err);
  66.   else
  67.     mmc_print_state(&s);
  68. }
  69.  
  70. void write_it(void);
  71. void write_it()
  72. {
  73.   mmc_state s;
  74.   int err;
  75.   mmc_invent_state(&s);
  76.   mmc_print_state(&s);
  77.   err=mmc_write_prep(&s);
  78.   if(err!=0)
  79.       printf("write it failed %d\n",err);
  80. }
  81.  
  82. /*
  83.  * warning, for debugging this routine is nearly duplicated in mmc_test.c
  84.  * be sure to fix bugs there too
  85.  */
  86. void mmc_macmail(long want_inhibit,char *name)
  87. {
  88.     int ref_num;
  89.     int len;
  90.     mmc_state s;
  91.     mmc_invent_state(&s);
  92.     if(want_inhibit!=MMC_normal)
  93.         s.mmc_st|=MCS_snooze;
  94.     len=imax(0,imin(*name,MMC_uname_len-1));
  95.     if(len!=0)
  96.         memcpy(s.mmc_uname,name+1,len);
  97.     s.mmc_uname[len]=0;
  98.     set_state(&s);
  99. #ifdef XXXX
  100.     ref_num=mmc_drvr_find(MMC_name,0L);        /*find it if present*/
  101.     if(ref_num==0)                /*not running so nothing to tell it*/
  102.         return;
  103.     mmc_set_drvr_state(ref_num,&s);
  104. #endif
  105. }
  106.  
  107. void cmd_loop(void);
  108. void cmd_loop()
  109. {
  110.     while(TRUE) {
  111.         char ch=get_cmd();
  112.         switch(ch) {
  113.         case 'q':
  114.             return;
  115.         case 'i':
  116.             printf("init err=%d\n",mmc_init());
  117.             break;
  118.         case 's':
  119.         {
  120.             mmc_state s;
  121.             mmc_invent_state(&s);
  122.             set_state(&s);
  123.             break;
  124.         }
  125.         case 'g':
  126.             get_state();
  127.             break;
  128.         case 't':
  129.             mmc_tick();
  130.             get_state();
  131.             break;
  132.         case 'm':
  133.             mmc_macmail(MMC_inhibit,"\pjs5l");
  134.             break;
  135.         case 'o':
  136.             mmc_macmail(MMC_normal,"\pjs5l");
  137.             break;
  138.         case '1':
  139.             mmc_macmail(MMC_inhibit,"\paw0g");
  140.             break;
  141.         case '2':
  142.             mmc_macmail(MMC_normal,"\paw0g");
  143.             break;
  144.         case 'u':
  145.             mmc_uninit();
  146.             break;
  147.         case 'r':
  148.             read_it();
  149.             break;
  150.         case 'w':
  151.             write_it();
  152.             break;
  153.          default:
  154.             printf("unrecignized command '%c'\n",ch);
  155.         }
  156.     }
  157. }
  158.  
  159. void open_res(void);
  160. void open_res()
  161. {
  162.   int res_file;
  163.   res_file=OpenResFile("\pmmc_drvr.prj.rsrc");
  164.   if(res_file== -1)        /*find the resource file?*/
  165.     fatal_error(("can't open resource file mmc_drvr.prj.rsrc.rsrc file %d",ResError()));
  166.   UseResFile(res_file);
  167. }
  168.  
  169. int main()
  170. {
  171.     printf("mmc test client test jig built on %s %s\n",__DATE__,__TIME__);
  172.     open_res();
  173.     cmd_loop();
  174. }
  175.